//-----------------------------------------------------------------------------
// Bend2D - Physics Engine
// Roberto Bender <beto.bender@gmail.com>
// Description: 
// Date: 11/07/2010
//-----------------------------------------------------------------------------
#ifndef BOX_H
#define BOX_H

#include "moveable.h"
#include "drawable.h"
#include "durable.h"
#include "physicable.h"
#include "collidable.h"
#include "exist.h"
#include "fastcast.h"
#include "rectangle.h"

namespace bend2d
{
	class Box : 
        public Moveable,
        public Drawable,
        public Durable,
        public Physicable,
        public Collidable,
        public Exist,
        public FastCast
	{
    public:
        Box(const Rectangle& rectangle);
        const Rectangle& GetRectangle() const;
        void SetRectangle(const Rectangle& rectangle);
        
        /* From Moveable */
        void SetPosition(const Point& point);
        const Point& GetPosition() const;
        const Angle& GetAngle() const;
        void SetAngle(const Angle& angle);

        MOVEABLE;
        DRAWABLE;
        DURABLE;
        PHYSICABLE;
        COLLIDABLE;

    private:
        Rectangle m_RectangleBox;
	};
}

#endif
